using System;
using System.Collections.Generic;
using System.Text;

using Microsoft.Xna.Framework;

namespace XnaDevRu.BulletX
{
    class TriangleMesh : StridingMeshInterface
    {
        int _numTriangles;
        List<Vector3> _verts;

        public TriangleMesh()
        {
            _numTriangles = 0;
            _verts = new List<Vector3>();
        }

        void AddTriangle(Vector3 vertex0, Vector3 vertex1, Vector3 vertex2)
        {
            _verts.Add(vertex0);
            _verts.Add(vertex1);
            _verts.Add(vertex2);
            _numTriangles++;
        }

        public override void GetLockedVertexIndexBase(out List<Vector3> verts, out List<int> indicies, out int numfaces, int subpart)
        {
            verts = new List<Vector3>();
            for (int i = 0; i < 3; i++)
            {
                verts.Add(_verts[subpart * 3 + i]);
            }
            indicies = new List<int>();
            indicies.Add(0);
            indicies.Add(1);
            indicies.Add(2);
            numfaces = 1;
        }

        public override void GetLockedReadOnlyVertexIndexBase(out List<Vector3> verts, out List<int> indicies, out int numfaces, int subpart)
        {
            verts = new List<Vector3>();
            for (int i = 0; i < 3; i++)
            {
                verts.Add(_verts[subpart * 3 + i]);
            }
            indicies = new List<int>();
            indicies.Add(0);
            indicies.Add(1);
            indicies.Add(2);
            numfaces = 1;
        }

        public override void UnLockVertexBase(int subpart)
        {

        }

        public override void UnLockReadOnlyVertexBase(int subpart)
        {

        }

        public override int SubPartsCount()
        {
            return _numTriangles;
        }

        public override void PreallocateVertices(int numverts)
        {

        }

        public override void PreallocateIndices(int numindices)
        {

        }
    }
}
